package com.power.sifa.statistics.service;

import com.plf.common.domain.PageDataResponse;
import com.plf.common.exception.BusinessException;
import com.power.sifa.statistics.model.pageInfo.StatisticsInfo;
import com.power.sifa.statistics.model.vo.BaseCountVO;
import com.power.sifa.statistics.model.vo.BaseGraphVO;

import java.util.List;
import java.util.Map;

/**
 * @ClassName Apl_statisticService
 * @Author xiongzw
 * @Date 2023/11/3 9:09
 * @Description 首页统计service
 * @Version: 1.0
 **/

public interface Apl_statisticService {


    /**
     * 首页统计-统计行政行为的柱状图
     *
     * @return
     * @throws BusinessException
     */
    BaseGraphVO countPrtypeList(StatisticsInfo info) throws BusinessException;


    /**
     * 首页统计-统计决定类型
     *
     * @return
     * @throws
     */
    BaseGraphVO countDecisionType(StatisticsInfo info) throws BusinessException;

    /**
     * 首页统计-统计被申请人
     *
     * @return
     * @throws BusinessException
     */
    BaseGraphVO countTargetTop(StatisticsInfo info) throws BusinessException;

    /**
     * 大屏统计-统计案件状态
     *
     * @return
     * @throws BusinessException
     */
    List<BaseCountVO> countCaseStatus(StatisticsInfo info) throws BusinessException;

    /**
     * 大屏统计-统计案件年度月度变化
     *
     * @return
     * @throws BusinessException
     */
    List<BaseCountVO> countCaseChangeYear(StatisticsInfo info) throws BusinessException;

    /**
     * 大屏统计-统计行政应诉案件
     *
     * @return
     * @throws BusinessException
     */
    List<BaseCountVO> CountRespondCase() throws BusinessException;


    /**
     * 大屏统计-（当年）复议情况案件统计
     *
     * @param info
     * @return
     */
    Map<String, Object> countFinish(StatisticsInfo info) throws BusinessException;


    /**
     * 大屏统计-统计案件接收情况
     *
     * @param info
     * @return
     */
    PageDataResponse caseStatus(StatisticsInfo info) throws BusinessException;

    /**
     * 大屏统计-统计案件接收情况
     *
     * @param info
     * @return
     */
    Map<String, BaseGraphVO> caseReceptionStatus(StatisticsInfo info) throws BusinessException;

    /**
     * 大屏统计-统计案件类型
     *
     * @param info
     * @return
     */
    BaseGraphVO countCaseType(StatisticsInfo info) throws BusinessException;

    /**
     * 大屏统计-结案类型统计
     *
     * @param info
     * @return
     * @throws BusinessException
     */
    Map<String, List<BaseCountVO>> countClosing(StatisticsInfo info) throws BusinessException;

    List<BaseCountVO> countClosingType(StatisticsInfo info) throws BusinessException;

    /**
     * 大屏统计--收案数据统计
     *
     * @param info
     * @return
     * @throws BusinessException
     */
    List<BaseCountVO> countReceiptData(StatisticsInfo info) throws BusinessException;
}
